package it.unipg.bipod.dataModel;

import java.sql.Timestamp;

/**
 * Bando mappa un'entita' "bando" di BiPoD.<br>
 * Le sue proprieta' rispecchiano 1-1 i campi dell'entia' corrispondente.
 * 
 * @author Lorenzo Porzi
 * 
 */
public class Bando {
	private int idBando;
	private Timestamp dataPubblicazione;
	private Timestamp dataScadenza;
	private Timestamp dataInserimento;
	
	/**
	 * Costruisce un nuovo bando "vuoto".
	 */
	public Bando() {
		this(0, new Timestamp(System.currentTimeMillis()), new Timestamp(System.currentTimeMillis()), new Timestamp(System.currentTimeMillis()));
	}
	
	/**
	 * Costruisce un bando con le proprieta' specificate.
	 * 
	 * @param idBando
	 * @param dataPubblicazione
	 * @param dataScadenza
	 * @param dataInserimento
	 */
	public Bando(int idBando, Timestamp dataPubblicazione, Timestamp dataScadenza, Timestamp dataInserimento) {
		setIdBando(idBando);
		setDataPubblicazione(dataPubblicazione);
		setDataScadenza(dataScadenza);
		setDataInserimento(dataInserimento);
	}
	
	/* -----------------
	 * Setters e Getters
	 * ----------------- */
	
	public void setIdBando(int idBando) {
		this.idBando = idBando;
	}

	public int getIdBando() {
		return idBando;
	}

	public void setDataPubblicazione(Timestamp dataPubblicazione) {
		this.dataPubblicazione = dataPubblicazione;
	}
	
	public Timestamp getDataPubblicazione() {
		return dataPubblicazione;
	}

	public void setDataScadenza(Timestamp dataScadenza) {
		this.dataScadenza = dataScadenza;
	}

	public Timestamp getDataScadenza() {
		return dataScadenza;
	}

	public void setDataInserimento(Timestamp dataInserimento) {
		this.dataInserimento = dataInserimento;
	}

	public Timestamp getDataInserimento() {
		return dataInserimento;
	}

	/* ------------
	 * Altri metodi
	 * ------------ */
	
	@Override
	public String toString() {
		return "Bando [dataInserimento=" + dataInserimento
				+ ", dataPubblicazione=" + dataPubblicazione
				+ ", dataScadenza=" + dataScadenza + ", idBando=" + idBando
				+ "]";
	}
	
	@Override
	public boolean equals(Object bando) {
		if (bando instanceof Bando)
			return getIdBando() == ((Bando)bando).getIdBando();
		
		return false;
	}
}